<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>STM32 Sequencer: SEQUENCER exported functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">STM32 Sequencer
   &#160;<span id="projectnumber">v1.6.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group___s_e_q_u_e_n_c_e_r___exported__function.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">SEQUENCER exported functions<div class="ingroups"><a class="el" href="group___s_e_q_u_e_n_c_e_r.html">sequencer utilities</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaef07a06c105da3570c971633460a8aa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">UTIL_SEQ_Init</a> (void)</td></tr>
<tr class="memdesc:gaef07a06c105da3570c971633460a8aa5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initializes the sequencer resources.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaef07a06c105da3570c971633460a8aa5">More...</a><br /></td></tr>
<tr class="separator:gaef07a06c105da3570c971633460a8aa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga91cceef5931daa30c4ec3a6577c11106"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">UTIL_SEQ_DeInit</a> (void)</td></tr>
<tr class="memdesc:ga91cceef5931daa30c4ec3a6577c11106"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function un-initializes the sequencer resources.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga91cceef5931daa30c4ec3a6577c11106">More...</a><br /></td></tr>
<tr class="separator:ga91cceef5931daa30c4ec3a6577c11106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae047669fe53f205396460fdbd3a5d8f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">UTIL_SEQ_Run</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> Mask_bm)</td></tr>
<tr class="memdesc:gae047669fe53f205396460fdbd3a5d8f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function requests the sequencer to execute all pending tasks using round robin mechanism. When no task are pending, it calls <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a>; This function should be called in a while loop in the application.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5">More...</a><br /></td></tr>
<tr class="separator:gae047669fe53f205396460fdbd3a5d8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacb5ddba0d11449d470c840d0bd961c14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">UTIL_SEQ_RegTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Flags, void(*Task)(void))</td></tr>
<tr class="memdesc:gacb5ddba0d11449d470c840d0bd961c14"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function registers a task in the sequencer.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gacb5ddba0d11449d470c840d0bd961c14">More...</a><br /></td></tr>
<tr class="separator:gacb5ddba0d11449d470c840d0bd961c14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66de990da4bde412751f15a7622a0da8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">UTIL_SEQ_SetTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, uint32_t Task_Prio)</td></tr>
<tr class="memdesc:ga66de990da4bde412751f15a7622a0da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function requests a task to be executed.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8">More...</a><br /></td></tr>
<tr class="separator:ga66de990da4bde412751f15a7622a0da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58bf5ad581a43e749b60a811353af558"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">UTIL_SEQ_IsSchedulableTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:ga58bf5ad581a43e749b60a811353af558"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function checks if a task could be scheduled.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga58bf5ad581a43e749b60a811353af558">More...</a><br /></td></tr>
<tr class="separator:ga58bf5ad581a43e749b60a811353af558"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad482af89f56e87da251f56d98674c02"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">UTIL_SEQ_PauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:gaad482af89f56e87da251f56d98674c02"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function prevents a task to be called by the sequencer even when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> When a task is paused, it is moved out from the sequencer list.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02">More...</a><br /></td></tr>
<tr class="separator:gaad482af89f56e87da251f56d98674c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa177da1e5c77c8430096356181d12b18"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">UTIL_SEQ_IsPauseTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:gaa177da1e5c77c8430096356181d12b18"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allows to know if the task has been put in pause. By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> The exit of the pause shall be done by the function UTIL_SEQ_ResumeTask.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaa177da1e5c77c8430096356181d12b18">More...</a><br /></td></tr>
<tr class="separator:gaa177da1e5c77c8430096356181d12b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">UTIL_SEQ_ResumeTask</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm)</td></tr>
<tr class="memdesc:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function allows again a task to be called by the sequencer if set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> This is used in relation with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02" title="This function prevents a task to be called by the sequencer even when set with UTIL_SEQ_SetTask() By ...">UTIL_SEQ_PauseTask()</a>  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66f6a7fbff82b6d397ca054bcf9350ec">More...</a><br /></td></tr>
<tr class="separator:ga66f6a7fbff82b6d397ca054bcf9350ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">UTIL_SEQ_SetEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets an event that is waited with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a>  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c">More...</a><br /></td></tr>
<tr class="separator:ga20f607dcbe03ca04f5c56a47e3cc846c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b48c77f677158e69ff072f7c05cded4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">UTIL_SEQ_ClrEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga2b48c77f677158e69ff072f7c05cded4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function may be used to clear the event before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> This API may be useful when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c" title="This function sets an event that is waited with UTIL_SEQ_WaitEvt()">UTIL_SEQ_SetEvt()</a> is called several time to notify the same event. Due to Software Architecture where the timings are hard to control, this may be an unwanted case.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga2b48c77f677158e69ff072f7c05cded4">More...</a><br /></td></tr>
<tr class="separator:ga2b48c77f677158e69ff072f7c05cded4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3546ca66266d5cc956741505318723a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">UTIL_SEQ_WaitEvt</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtId_bm)</td></tr>
<tr class="memdesc:ga3546ca66266d5cc956741505318723a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function waits for a specific event to be set. The sequencer loops <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> until the event is set When called recursively, it acts as a First in / Last out mechanism. The sequencer waits for the last event requested to be set even though one of the already requested event has been set.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2">More...</a><br /></td></tr>
<tr class="separator:ga3546ca66266d5cc956741505318723a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">UTIL_SEQ_IsEvtPend</a> (void)</td></tr>
<tr class="memdesc:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function returns whether the waited event is pending or not It is useful only when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> is overloaded by the application. In that case, when the low power mode needs to be executed, the application shall first check whether the waited event is pending or not. Both the event checking and the low power mode processing should be done in critical section.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">More...</a><br /></td></tr>
<tr class="separator:ga8d6c2fd6aac8b833a25602ec4b8c5fc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">UTIL_SEQ_EvtIdle</a> (<a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> TaskId_bm, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> EvtWaited_bm)</td></tr>
<tr class="memdesc:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function loops until the waited event is set.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17">More...</a><br /></td></tr>
<tr class="separator:ga6bd90dbfc7e3515391128d1ca1739c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">UTIL_SEQ_Idle</a> (void)</td></tr>
<tr class="memdesc:ga5efb8394fc5244b650c8cc8f642e6271"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer in critical section (PRIMASK bit) when.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271">More...</a><br /></td></tr>
<tr class="separator:ga5efb8394fc5244b650c8cc8f642e6271"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga373387b03a48559d58eacb919f44a799"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">UTIL_SEQ_PreIdle</a> (void)</td></tr>
<tr class="memdesc:ga373387b03a48559d58eacb919f44a799"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer outside critical section just before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is considered as the last task executed before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> In case a task or an event is set from an interrupt handler just after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is called, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> will not be called.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799">More...</a><br /></td></tr>
<tr class="separator:ga373387b03a48559d58eacb919f44a799"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga481b45c409e4d8180c64efdef67daa7f"><td class="memItemLeft" align="right" valign="top">__WEAK void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">UTIL_SEQ_PostIdle</a> (void)</td></tr>
<tr class="memdesc:ga481b45c409e4d8180c64efdef67daa7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is called by the sequencer outside critical section either.  <a href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f">More...</a><br /></td></tr>
<tr class="separator:ga481b45c409e4d8180c64efdef67daa7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga2b48c77f677158e69ff072f7c05cded4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b48c77f677158e69ff072f7c05cded4">&#9670;&nbsp;</a></span>UTIL_SEQ_ClrEvt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_ClrEvt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>EvtId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function may be used to clear the event before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> This API may be useful when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga20f607dcbe03ca04f5c56a47e3cc846c" title="This function sets an event that is waited with UTIL_SEQ_WaitEvt()">UTIL_SEQ_SetEvt()</a> is called several time to notify the same event. Due to Software Architecture where the timings are hard to control, this may be an unwanted case. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">EvtId_bm</td><td>event id bm It shall be a bit mapping where only 1 bit is set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00407">407</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga91cceef5931daa30c4ec3a6577c11106"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga91cceef5931daa30c4ec3a6577c11106">&#9670;&nbsp;</a></span>UTIL_SEQ_DeInit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_DeInit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function un-initializes the sequencer resources. </p>
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00199">199</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga6bd90dbfc7e3515391128d1ca1739c17"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6bd90dbfc7e3515391128d1ca1739c17">&#9670;&nbsp;</a></span>UTIL_SEQ_EvtIdle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_EvtIdle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>EvtWaited_bm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function loops until the waited event is set. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The task id that is currently running. When task_id_bm = 0, it means <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt( )</a> has been called outside a registered task (ie at startup before <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gae047669fe53f205396460fdbd3a5d8f5" title="This function requests the sequencer to execute all pending tasks using round robin mechanism....">UTIL_SEQ_Run( )</a> has been called </td></tr>
    <tr><td class="paramname">EvtWaited_bm</td><td>The event id that is waited.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>When not implemented by the application, it calls UTIL_SEQ_Run(~TaskId_bm) which means the waited task is suspended until the waited event and the other tasks are running or the application enter low power mode. Else the user can redefine his own function for example call sequencer UTIL_SEQ_Run(0) to suspend all the task and let the sequencer enter the low power mode. It shall be called only by the sequencer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00477">477</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

<p class="reference">References <a class="el" href="stm32__seq_8c_source.html#l00209">UTIL_SEQ_Run()</a>.</p>

</div>
</div>
<a id="ga5efb8394fc5244b650c8cc8f642e6271"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5efb8394fc5244b650c8cc8f642e6271">&#9670;&nbsp;</a></span>UTIL_SEQ_Idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_Idle </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is called by the sequencer in critical section (PRIMASK bit) when. </p>
<ul>
<li>there are no more tasks to be executed AND</li>
<li>there are no pending event or the pending event is still not set <dl class="section note"><dt>Note</dt><dd>The application should enter low power mode in this function When this function is not implemented by the application, the sequencer keeps running a while loop (RUN MODE). It shall be called only by the sequencer. </dd></dl>
</li>
</ul>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00484">484</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="gaef07a06c105da3570c971633460a8aa5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaef07a06c105da3570c971633460a8aa5">&#9670;&nbsp;</a></span>UTIL_SEQ_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_Init </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initializes the sequencer resources. </p>
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00182">182</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga8d6c2fd6aac8b833a25602ec4b8c5fc7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d6c2fd6aac8b833a25602ec4b8c5fc7">&#9670;&nbsp;</a></span>UTIL_SEQ_IsEvtPend()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a> UTIL_SEQ_IsEvtPend </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function returns whether the waited event is pending or not It is useful only when the <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> is overloaded by the application. In that case, when the low power mode needs to be executed, the application shall first check whether the waited event is pending or not. Both the event checking and the low power mode processing should be done in critical section. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>when the waited event is not there or the evt_id when the waited event is pending</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00471">471</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="gaa177da1e5c77c8430096356181d12b18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa177da1e5c77c8430096356181d12b18">&#9670;&nbsp;</a></span>UTIL_SEQ_IsPauseTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t UTIL_SEQ_IsPauseTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function allows to know if the task has been put in pause. By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> The exit of the pause shall be done by the function UTIL_SEQ_ResumeTask. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1&lt;&lt;task_id) where task_id is the number assigned when the task has been registered</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00374">374</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga58bf5ad581a43e749b60a811353af558"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58bf5ad581a43e749b60a811353af558">&#9670;&nbsp;</a></span>UTIL_SEQ_IsSchedulableTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t UTIL_SEQ_IsSchedulableTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function checks if a task could be scheduled. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1&lt;&lt;task_id) where task_id is the number assigned when the task has been registered </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>if not 1 if true</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00349">349</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="gaad482af89f56e87da251f56d98674c02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad482af89f56e87da251f56d98674c02">&#9670;&nbsp;</a></span>UTIL_SEQ_PauseTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_PauseTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function prevents a task to be called by the sequencer even when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> By default, all tasks are executed by the sequencer when set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> When a task is paused, it is moved out from the sequencer list. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1&lt;&lt;task_id) where task_id is the number assigned when the task has been registered</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00363">363</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga481b45c409e4d8180c64efdef67daa7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga481b45c409e4d8180c64efdef67daa7f">&#9670;&nbsp;</a></span>UTIL_SEQ_PostIdle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_PostIdle </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is called by the sequencer outside critical section either. </p>
<ul>
<li>after calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> OR</li>
<li>after calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle( )</a> without call to <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> due to an incoming task set or event requested after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> has been called.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga481b45c409e4d8180c64efdef67daa7f" title="This function is called by the sequencer outside critical section either.">UTIL_SEQ_PostIdle()</a> is always called if <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> has been called and never called otherwise. It shall be called only by the sequencer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00497">497</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga373387b03a48559d58eacb919f44a799"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga373387b03a48559d58eacb919f44a799">&#9670;&nbsp;</a></span>UTIL_SEQ_PreIdle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_PreIdle </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is called by the sequencer outside critical section just before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is considered as the last task executed before calling <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle( )</a> In case a task or an event is set from an interrupt handler just after <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga373387b03a48559d58eacb919f44a799" title="This function is called by the sequencer outside critical section just before calling UTIL_SEQ_Idle( ...">UTIL_SEQ_PreIdle()</a> is called, <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a> will not be called. </p>
<dl class="section note"><dt>Note</dt><dd>It shall be called only by the sequencer. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00489">489</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="gacb5ddba0d11449d470c840d0bd961c14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacb5ddba0d11449d470c840d0bd961c14">&#9670;&nbsp;</a></span>UTIL_SEQ_RegTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_RegTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>Flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void(*)(void)&#160;</td>
          <td class="paramname"><em>Task</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function registers a task in the sequencer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task </td></tr>
    <tr><td class="paramname">Flags</td><td>Flags are reserved param for future use </td></tr>
    <tr><td class="paramname">Task</td><td>Reference of the function to be executed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00325">325</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga66f6a7fbff82b6d397ca054bcf9350ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga66f6a7fbff82b6d397ca054bcf9350ec">&#9670;&nbsp;</a></span>UTIL_SEQ_ResumeTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_ResumeTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function allows again a task to be called by the sequencer if set with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga66de990da4bde412751f15a7622a0da8" title="This function requests a task to be executed.">UTIL_SEQ_SetTask()</a> This is used in relation with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#gaad482af89f56e87da251f56d98674c02" title="This function prevents a task to be called by the sequencer even when set with UTIL_SEQ_SetTask() By ...">UTIL_SEQ_PauseTask()</a> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1&lt;&lt;task_id) where task_id is the number assigned when the task has been registered</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00385">385</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="gae047669fe53f205396460fdbd3a5d8f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae047669fe53f205396460fdbd3a5d8f5">&#9670;&nbsp;</a></span>UTIL_SEQ_Run()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_Run </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>Mask_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function requests the sequencer to execute all pending tasks using round robin mechanism. When no task are pending, it calls <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga5efb8394fc5244b650c8cc8f642e6271" title="This function is called by the sequencer in critical section (PRIMASK bit) when.">UTIL_SEQ_Idle()</a>; This function should be called in a while loop in the application. </p>
<p>This function can be nested. That is the reason why many variables that are used only in that function are declared static. Note: These variables could have been declared static in the function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Mask_bm</td><td>list of task (bit mapping) that is be kept in the sequencer list.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd>
<dd>
The construction of the task must take into account the fact that there is no counting / protection on the activation of the task. Thus, when the task is running, it must perform all the operations in progress programmed before its call or manage a reprogramming of the task. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00209">209</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

<p class="reference">Referenced by <a class="el" href="stm32__seq_8c_source.html#l00477">UTIL_SEQ_EvtIdle()</a>.</p>

</div>
</div>
<a id="ga20f607dcbe03ca04f5c56a47e3cc846c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga20f607dcbe03ca04f5c56a47e3cc846c">&#9670;&nbsp;</a></span>UTIL_SEQ_SetEvt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_SetEvt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>EvtId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets an event that is waited with <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga3546ca66266d5cc956741505318723a2" title="This function waits for a specific event to be set. The sequencer loops UTIL_SEQ_EvtIdle() until the ...">UTIL_SEQ_WaitEvt()</a> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">EvtId_bm</td><td>event id bit mask</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>An event shall be a 32 bit mapping where only 1 bit is set It may be called from an ISR. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00396">396</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga66de990da4bde412751f15a7622a0da8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga66de990da4bde412751f15a7622a0da8">&#9670;&nbsp;</a></span>UTIL_SEQ_SetTask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_SetTask </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>TaskId_bm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>Task_Prio</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function requests a task to be executed. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">TaskId_bm</td><td>The Id of the task It shall be (1&lt;&lt;task_id) where task_id is the number assigned when the task has been registered </td></tr>
    <tr><td class="paramname">Task_Prio</td><td>The priority of the task It shall a number from 0 (high priority) to 31 (low priority) The priority is checked each time the sequencer needs to select a new task to execute It does not permit to preempt a running task with lower priority</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It may be called from an ISR </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00337">337</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
<a id="ga3546ca66266d5cc956741505318723a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3546ca66266d5cc956741505318723a2">&#9670;&nbsp;</a></span>UTIL_SEQ_WaitEvt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void UTIL_SEQ_WaitEvt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__type.html#gaf1d37385aa3a7ce76c48447ba7dd5707">UTIL_SEQ_bm_t</a>&#160;</td>
          <td class="paramname"><em>EvtId_bm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function waits for a specific event to be set. The sequencer loops <a class="el" href="group___s_e_q_u_e_n_c_e_r___exported__function.html#ga6bd90dbfc7e3515391128d1ca1739c17" title="This function loops until the waited event is set.">UTIL_SEQ_EvtIdle()</a> until the event is set When called recursively, it acts as a First in / Last out mechanism. The sequencer waits for the last event requested to be set even though one of the already requested event has been set. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">EvtId_bm</td><td>event id bit mask It shall be a bit mapping where only 1 bit is set</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>It shall not be called from an ISR. </dd>
<dd>
The construction of the task must take into account the fact that there is no counting / protection on the event. Thus, when the task is running, it must perform all the operations in progress programmed before its call or manage a reprogramming of the task. </dd></dl>

<p class="definition">Definition at line <a class="el" href="stm32__seq_8c_source.html#l00418">418</a> of file <a class="el" href="stm32__seq_8c_source.html">stm32_seq.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
